#include "StdAfx.h"
#include "VSqlDataMap.h"

// VSqlDataMap ////////////////////////////////////////////////////////////////

//
VSqlData *VSqlDataMap::dataPtr_byMetaTable(const VSqlMeta &metaTable,const QList<VSqlMeta> &metaFieldList)
{
	if (metaTable.isNull())
		return &m_dataEmpty;

	Q_ASSERT(metaTable.item().isTable() == true);
		
	quint64 vIdTable = metaTable.item().idItem().value().toULongLong();
	if (m_dataMap.contains(vIdTable))
		return m_dataMap[vIdTable];
		
	VSqlData *data = new VSqlData(m_metaMap->db());
	data->setFrom(
		metaTable,
		metaFieldList.count() > 0 
			? metaFieldList 
			: m_metaMap->childMetaList_byMeta(metaTable)
	);

	m_dataMap[vIdTable] = data;
	return data;
}
